First developed in 1994, QR codes are a two-dimensional barcode type that has come into much popularity with the recent ubiquity of mobile devices. Featuring a robust error correction mechanism and a number of structurally identifying features, this barcode type has been designed around ease of recognition. The most visually striking features of QR codes are the concentric square finder patterns and alignment patterns. These patterns serve as boundary markers and indicate locations within the code to accurately align the barcode's modules.
A QR code normally includes multiple locator patterns, e.g., three, one in each of three different corners of a square QR code. While locater pattern redundancy is helpful when trying to determine the boundaries of a QR code, in many cases a QR code may be damaged or a scan of the code may be noisy, e.g., due to some black areas being interpreted as white and visa versa. Unfortunately, noise is often present in scanned QR codes even if the original code is relatively intact. In the context of the present application a scan maybe a image captured by a camera such as a camera cell phone or an image captured by a scanner which sequentially captures portions of an image of an object such as a document. Thus scan is used to generally refer to a captured image of an object such as a page of a document or product packaging regardless of the device used to capture the image. Cameras and scanners normally include an optical sensor often simply referred to as a sensor which converts captured light to electrical signals which correspond to pixel values. Thus the output of a sensor is often a set of pixel values of a captured image, e.g., the scanned image. During image capture sensor noise may cause some pixels of the scan to assume a value different from what the actual pixel value should be.
The processing of a noisy scan and/or a scan of a damaged QR code to locate one or more finder patterns presents several technical problems. One technical problem is how to process a lossy or damaged image to make it easier to find a locator pattern and/or find the position of the corners of the locator pattern. It would be desirable if one or more methods and/or apparatus could be developed to process a damaged or noisy QR code to facilitate accurate identification of a QR locator pattern and its corners even if the damaged or noisy QR code can not be fully repaired. Another technical problem is how to determine the position and/or corners of a QR locator pattern when it is damaged which is often the case.
In view of the above discussion it should be appreciated that there is a need for methods and/or apparatus which can be used to process scanned images, e.g., of QR codes, to enhance the probability of correct identification and/or location of a QR code finder pattern. In addition there is a need for methods and/or apparatus which can find the position of a noisy or otherwise damaged QR locator pattern and/or the corners of such a QR locator pattern. While it would be desirable if the methods and apparatus could address multiple technical problems of the type described, even if one or more of the problems can be addressed it would be useful since increasing the reliability of QR locator pattern identification and location determination can facilitate successful reading and/or recovery of information communicated by a QR code in which the QR location pattern is located.